package cn.xueden.system.service;

import cn.xueden.system.model.entity.User;
import cn.xueden.system.model.form.EditUserForm;
import cn.xueden.system.model.form.UserForm;
import cn.xueden.system.model.vo.UserExcelVO;
import cn.xueden.system.model.vo.UserVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**功能描述：用户服务接口
 * @author:梁志杰
 * @date:2025/6/8
 * @description:cn.xueden.system.service
 * @version:1.0
 */
public interface IUserService extends IService<User> {
    /**
     * 分页查询用户信息
     * @param page
     * @param realName
     * @return
     */
    IPage<UserVO> pagingUser(Page<UserVO> page, String realName);

    /**
     * 创建用户
     * @param userForm
     * @return
     */
    boolean createUser(UserForm userForm);

    /**
     * 修改用户信息
     * @param editUserForm
     * @return
     */
    boolean updateUser(EditUserForm editUserForm);

    /**
     * 批量删除用户
     * @param ids
     * @return
     */
    boolean deleteBatchByIds(String ids);


    /**
     * 删除用户
     * @param id
     * @return
     */
    boolean deleteById(Long id);

    /**
     * 导出用户信息
     * @return
     */
    List<UserExcelVO> listForExport();

    /**
     *  判断用户名是否存在
     * @param userName
     * @return
     */
    boolean existsByUserName(String userName);

    /**
     * 批量保存导入的数据
     * @param cachedDataList
     */
    void saveBatchImportData(List<User> cachedDataList);
}
